#ifndef SERVER_H
#define SERVER_H

#define DATA_MAX (128)
#define QUEUE_MAX (20)

typedef struct tagPARKINGLOT {
    char lamp[2];          // 灯 1 0x1
    char railing[2];       // 栏杆 1 0x2
    char camera[2];        // 摄像头 1 0x3
    char distance[3];      // 距离 2 0x4
    char temperature[3];   // 温度 2 0x5
    char humidity[3];      // 湿度 2 0x6
    char altitude[3];      // 海拔 2 0x7
    char pressure[5];      // 气压 4 0x8
    char concentration[3]; // 烟雾浓度 2 0x9
    char threshold[3];     // 烟雾阈值 2 0xa
    char illumination[5];  // 光照强度 4 0xb
    char total[5];         // 车位总数 4 0xc
    char remainder[5];     // 车位剩余 4 0xd
} PARKINGLOT, *HPARKINGLOT;

void server_run();
void *client_handle(void *arg);
void save_client(const int client);
void remove_clinet(const int client);
void send_controller_status(const int client);
void send_all(const char *buf, const int size);
void server_init(const char *port, const int dataMax);
void save_controller_status(const char *buf, const int size);
#endif
